﻿<%@ Page Language="C#" AutoEventWireup="true" %>
// 自己动完成下拉提示框
var intIndex=0;arrList = new Array();

function dearray(aa)//定义array
{
    //document.write(aa);
    arrList = aa.split(',');
    intIndex = arrList.length;

}

function test()
{

    init();
    //开始定义东东数组
<script language="c#" runat="server">
/// <summary>
/// 字段的值 
/// </summary>
string BaValue = "";
/// <summary>
/// 
/// 字段
/// </summary>
string[] BaItems;

    string cont="";//内容
protected void Page_Load()
{

    //生成随机数
   // Random round = new Random(int.Parse(DateTime.Now.Millisecond.ToString()));//用毫秒做种子

    
    try
    {
        BaItems = Request.QueryString.AllKeys;
        //指定字段接收 不会出现乱码   Request.QueryString[Request.QueryString.GetKey(i)]
        for (int i = 0; i < BaItems.Length; i++)
        {
            BaValue = Request.QueryString[Request.QueryString.GetKey(i)];//得到URL值

            cont+="dearray(\"" + BaValue + "\");\r\n smanPromptList(arrList,\"" + BaItems[i] + "\");\r\n";
        }
    }
    catch(Exception ex)
    {
        Response.Write(ex.Message);
    }
}

</script>
<%=cont %>
}
function init() {

if (arrList.constructor!=Array){alert('smanPromptList初始化失败:第一个参数非数组!');return ;}
    arrList.sort( function(a, b) {
    if(a.length>b.length)return 1;
    else if(a.length==b.length)return a.localeCompare(b);
    else return -1;
        }
    ); 
}


function smanPromptList(arrList,objInputId){
        var objouter=document.getElementById("__smanDisp") //显示的DIV对象
        var objInput = document.getElementById(objInputId); //文本框对象
        var selectedIndex=-1;
        var intTmp; //循环用的:)

        if (objInput==null) {alert('smanPromptList初始化失败:没有找到"'+objInputId+'"文本框');return ;}
            //文本框失去焦点
            objInput.onblur=function(){
                objouter.style.display='none';
            }
            //文本框按键抬起
            objInput.onkeyup=checkKeyCode;
            //文本框得到焦点
            objInput.onfocus=checkAndShow;
            function checkKeyCode(evt){
			    evt = evt || window.event;
                var ie = (document.all)? true:false
                if (ie){
                    var keyCode=evt.keyCode
                    if (keyCode==40||keyCode==38){ //下上
                        var isUp=false
                        if(keyCode==40) isUp=true ;
                        chageSelection(isUp)
                    }else if (keyCode==13){//回车
                        outSelection(selectedIndex);
                    }else{
                        checkAndShow(evt)
                    }
                }else{
                    checkAndShow(evt)
                }
                divPosition(evt)
            }

            function checkAndShow(evt){
                        var strInput = objInput.value
                        if (strInput!=""){
                            divPosition(evt);
                            selectedIndex=-1;
                            objouter.innerHTML ="";
                            for (intTmp=0;intTmp<arrList.length;intTmp++){
                                if (arrList[intTmp].substr(0, strInput.length)==strInput){
                                    addOption(arrList[intTmp]);
                                }
                            }
                            objouter.style.display='';
                        }else{
                            objouter.style.display='none';
                    }
                    function addOption(value){
                        objouter.innerHTML +="<div onmouseover=\"this.className='sman_selectedStyle'\" onmouseout=\"this.className=''\" onmousedown=\"document.getElementById('"+objInputId+"').value='" + value + "'\">" + value + "</div>"    
                    }
            }
            function chageSelection(isUp){
                if (objouter.style.display=='none'){
                    objouter.style.display='';
                }else{
                    if (isUp)
                        selectedIndex++
                    else
                        selectedIndex--
                }
                var maxIndex = objouter.children.length-1;
                if (selectedIndex<0){selectedIndex=0}
                if (selectedIndex>maxIndex) {selectedIndex=maxIndex}
                for (intTmp=0;intTmp<=maxIndex;intTmp++){

                    if (intTmp==selectedIndex){
                        objouter.children[intTmp].className="sman_selectedStyle";
                    }else{
                        objouter.children[intTmp].className="";
                    }
                }
            }
            function outSelection(Index){
                objInput.value = objouter.children[Index].innerText;
                objouter.style.display='none';
            }
            function divPosition(evt){
                var left = 0;
	            var top  = 0;				
				var e = objInput;
	            while (e.offsetParent){
		            left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
		           top  += e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
		          e     = e.offsetParent;
	           }

	          left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
	          top  += e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
	
                objouter.style.top    = (top  + objInput.clientHeight) + 'px' ;
                objouter.style.left    = left + 'px' ; 
                objouter.style.width= objInput.clientWidth;
            }
    }
    eval(document.write("<div id='__smanDisp'  style='position:absolute;display:none;FILTER: alpha(opacity=85)progid:DXImageTransform.Microsoft.Shadow(Color=#999999,Direction=120,strength=4);BORDER-RIGHT: #999999 1px solid;BORDER-TOP: #eeeeee 1px solid;BORDER-LEFT: #eeeeee 1px solid;BORDER-BOTTOM: #999999 1px solid;background-color:#ffffff;font-size:12px;font-family: Georgia, Times New Roman, Times, serif;' onbulr> </div>"));

    eval(document.write("<style>.sman_selectedStyle{	font-family: Georgia, Times New Roman, Times, serif;background-color:#FF99CC;color:#FFFFFF; font-size:12px;}</style>")); 

    function getAbsoluteHeight(ob){
        return ob.offsetHeight
    }
    function getAbsoluteWidth(ob){
        return ob.offsetWidth
    }
    function getAbsoluteLeft(ob){
        var mendingLeft = ob .offsetLeft;
        while( ob != null && ob.offsetParent != null && ob.offsetParent.tagName != "BODY" ){
            mendingLeft += ob .offsetParent.offsetLeft;
            mendingOb = ob.offsetParent;
        }
        return mendingLeft ;
    }
    function getAbsoluteTop(ob){
        var mendingTop = ob.offsetTop;
        while( ob != null && ob.offsetParent != null && ob.offsetParent.tagName != "BODY" ){
            mendingTop += ob .offsetParent.offsetTop;
            ob = ob .offsetParent;
        }
        return mendingTop ;
    }
Number.prototype.NaN0 = function()
{
    return isNaN(this)?0:this;
}